package com.shujia.wyh.day26;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/*
        线程池：线程池里的每一个线程代码结束后，并不会死亡，而是再次回到线程池中成为空闲状态，等待下一个对象来使用。

        如何实现线程池程序呢？
            1、创建线程池对象，JDK5新增了一个Executors工厂类来产生线程池，有如下几个静态方法
                public static ExecutorService newCachedThreadPool()
                public static ExecutorService newFixedThreadPool(int nThreads)
                public static ExecutorService newSingleThreadExecutor()
              今天以第二个线程池的使用举例
            2、如何往线程池中放线程？（可以放哪种线程）
            3、怎么运行
                当提交到线程池的时候，就会自动启动一个线程执行


 */
public class ThreadPoolDemo4 {
    public static void main(String[] args) {
        //创建线程池对象
        ExecutorService pool = Executors.newFixedThreadPool(2);

        //Future<?> submit(Runnable task)
        //提交一个可运行的任务执行，并返回一个表示该任务的未来。
        MyRunnable2 myRunnable2 = new MyRunnable2();
        pool.submit(myRunnable2);
        pool.submit(myRunnable2);
        pool.submit(myRunnable2);

        //线程池需要手动关闭
        //void shutdown()
        //启动有序关闭，其中先前提交的任务将被执行，但不会接受任何新任务。
        pool.shutdown();


    }
}
